package com.stained.white.goat.random;

import java.util.Random;

/**
 * 乱数操作共通クラス.
 * @author stained white goat
 *
 */
public class RandomUtils {

    /** 乱数生成クラス. */
    private static Random random;

    /**
     * コンストラクター.
     */
    private RandomUtils() {
        // コンストラクター実行不可
    }

    /**
     * 乱数生成クラス設定.
     * @param <T> extends Random
     * @param creator 乱数生成クラス
     */
    public static <T extends Random> void setRandomCreator(Class<T> creator) {
        try {
            random = creator.newInstance();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    /**
     * 乱数取得.
     * @param max 乱数最大値
     * @return 乱数
     */
    public static final int getRandomNumber(int max) {
        if (random == null) {
            random = new Random();
        }
        return random.nextInt(max);
    }

}
